<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>
        //    ajax('post' , 'http://43.138.81.225/php/reg.php' ,{
        //         username : 'yy' ,
        //         password : '123'
        //     } , 'json' )


        ajax({
            url : 'post' ,
            url : 'http://43.138.81.225/php/reg.php' ,
            data : {
                username : 'yy' ,
                password : '123'
            } ,
            cb : function(data) {
                console.log(data);
            }
        })

        ajax({
            type : 'get' ,
            url : '../data/1.txt' ,
            dataType : 'string' ,
            cb : function(data) {
                console.log(data);
            }
        })

      
            
        // dataType 返回值的类型   json  string
        function ajax(options) {

            const {type , url , data = {} , dataType = 'json' , async = true , success} = options ;

            let params = '' ;
            for(let key in data) {
                params += `${key}=${data[key]}&` ;
            }
            params = params.substr(0 , params.length - 1) ;
            // console.log(params);


            const xhr = new XMLHttpRequest() ;

            // 判断请求方式
            if(type.toLowerCase() === 'get') {
                xhr.open('get' , url + '?' + params , async) ;
                xhr.send() ;
            }

            else if(type.toLowerCase() === 'post') {
                xhr.open('post' , url , async) ;
                xhr.setRequestHeader('content-type' , 'application/x-www-form-urlencoded');
                xhr.send(params) ;
            }

           
            xhr.onreadystatechange = function() {
                if(xhr.readyState === 4 && xhr.status === 200) {
                    let data = xhr.responseText ;
                    // 判断返回值的类型
                    if(dataType.toLowerCase() === 'json') {
                        data = JSON.parse(data) ;
                    } 
                    // console.log(data);
                    // 拿到数据以后  要把这个数据进行其他处理
                    success(data) ;
                }
            }
        }

    </script>
    
</body>
</html>